#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>


typedef int ElemType;
typedef struct
{
    ElemType *data;
    int size;
}Stable;


void init_stable(Stable &st,int length)
{
    st.size=length;
    st.data=(ElemType*)malloc(sizeof(ElemType)*length);
    //往数组中填入随机数
    srand(time(NULL));
    for(int i=0; i<length; i++)
    {
        st.data[i]=rand()%100;  //生成0~99的随机数
    }
}

//打印数组
void print_stable(Stable st)
{
    for(int i=0; i< st.size ; i++)
    {
        printf("%3d",st.data[i]);
    }
    printf("\n");
}


//冒泡排序
void bubble_sort(ElemType *data,int len)
{
    for(int i=0; i<len-1; i++)
    {
        bool flag=true;
        for(int j=0; j<len-1-i; j++)
        {
            if(data[j] > data[j+1])
            {
                int temp=data[j];
                data[j]=data[j+1];
                data[j+1]=temp;
                flag=false;
            }
        }
        if(flag) {
            return;
        }
    }
}

int main() {

    Stable st;
    init_stable(st,10);
    print_stable(st);
    bubble_sort(st.data,st.size);
    print_stable(st);
    return 0;
}
